import uni_request from '@/utils/uni_request.js'
import {
	config
} from '@/config.js'

const request = uni_request({
	// 有效配置项只有三个
	baseURL: 'https://zx.hongfyun.com/vr_service', //baseURL 7755
	timeout: 9000, // 超时时间
	// 设置请求头，建议放在请求拦截器中
	header: {
		'content-type': 'application/json',
		// appId: config.appId,
		token: uni.getStorageSync('token')
	},
})

request.interceptors.request.use(async (config, ...args) => {
	// args[0] method args[1] url args[3] data
	// config.header.Authorization = 'Bearer ' + $store.state.app.token // 修改请求头
	// config.body.test = 'test' // 修改请求体
	config.header.Authorization = uni.getStorageSync('token') // 修改请求头
	config.header.token = uni.getStorageSync('token') // 修改请求头
	uni.showLoading({
		title: '正在加载中...',
		mask: false
	});
	return config
})

request.interceptors.response.use((response, ...args) => {
	uni.hideLoading()
	// 响应拦截器（可以设置多个, 同时可以也可以使用异步方法）
	const {
		data: res
	} = response // args[0] method args[1] url args[3] data
	
	
	if(res.code===410||res.code===411||res.code===412||res.code===413||res.code===414){
		uni.reLaunch({
			url: '/pages/login/login',
			success: () => {
				 uni.clearStorageSync();
				 this.$store.dispatch('clearUserInfo')
			}
		});
		uni.showToast({
			title: '请登录',
			icon: 'none'
		});
	}
	
	const _success = res.flag
	if (_success) {
		// console.log(res)
	} else {
		// console.log(res)
		uni.showToast({
			title: `${res.msg}`,
			icon: 'none',
			duration: 2000,
		})
	}
	return response
})

request.onerror = async (...args) => {
	// 请求失败统一处理方法（可以也可以使用异步方法）
	// args[0] method args[1] url args[3] data
	await uni.showToast({
		title: `${args[3]}`,
		icon: 'none',
		duration: 2000,
	})

	await uni.reLaunch({
		url: '/pages/login/login',
		success: () => {
			 uni.clearStorageSync();			
					this.$store.dispatch('clearUserInfo')
		}
	});
}

export default request
